package com.neusoft.yiyang.auth.service;

import java.util.Map;

public interface AuthService {
    /**
     * 用户登录，生成 JWT Token 和 Refresh Token
     * @param username 用户名
     * @param password 密码
     * @param captchaKey 验证码唯一标识
     * @param inputCaptcha 用户输入的验证码
     * @return 包含 accessToken 和 refreshToken 的 Map，验证失败返回 null
     */
    Map<String, String> login(String username, String password, String captchaKey, String inputCaptcha);

    /**
     * 使用 Refresh Token 刷新 Access Token
     * @param refreshToken 刷新令牌
     * @return 包含新 accessToken 和新 refreshToken 的 Map，刷新失败返回 null
     */
    Map<String, String> refreshToken(String refreshToken);

    /**
     * 用户注销，将 Token 加入黑名单
     * @param token 需要注销的 accessToken
     */
    void logout(String token);
}